
package com.be.beadmin.device.service;

import com.be.beadmin.common.entity.PageEntity;
import com.be.beadmin.device.entity.DeFile;
import com.be.beadmin.device.dto.output.DeFileEx;
import com.be.beadmin.device.dto.input.DeFileDto;
import com.be.beadmin.device.dto.input.DeFileQueryCriteria;
import org.springframework.data.domain.Page;

import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;

/**
* @description 服务接口
* @author chenxu
* @date 2023-11-12
**/
public interface DeFileService {

    /**
    * 分页的查询接口
    * @param pageEntity
    * @return
    */
    Page<DeFileEx> getDeFileByPage(PageEntity pageEntity);

    /**
    * @param deFileDto
    */
    void addDeFile(DeFileDto deFileDto);

    /**
    * @param deFileDto
    */
    void updateDeFile(DeFileDto deFileDto);

    /**
    * @param id
    */
    void delDeFile(String id);


    void delDeFiles (List<String> ids);

    /**
     * 上传文件
     * @param ehsitemId
     * @param multipartFile
     * @param fileName
     * @param memo
     * @param bucketName
     * @throws Exception
     */
    void uploadDeFile(String ehsitemId, MultipartFile[] multipartFile, String fileName, String memo, String bucketName) throws Exception;

    String previewDeFile(String id)throws Exception;
    void downloadDeFile(String id, HttpServletResponse response)throws Exception;

}